package demo12;

import java.io.File;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入想要扫描的路径：");
        String path=scanner.next();
        File rootPath = new File(path);
        //下面的这个是对于用户可能输入的异常的方法进行判断的
        if(!rootPath.isDirectory()){
            System.out.println("你输入的这个路径不正确");
            return;
        }

        System.out.println("请输入你想要查询的关键词");
        String word = scanner.next();

        scanDir(rootPath,word);
    }
@SuppressWarnings({"all"})
    private static void scanDir(File rootPath,String word){
        //1.列举出来这个目录下面的所有内容
        File[] files = rootPath.listFiles();
        if(files==null){
            return;
        }
        //下面的这个是使用的增强for的方法进行遍历的
        for(File f:files){
            System.out.println("当前扫描的这个文件就是："+f.getAbsolutePath());
            if(f.isFile()){
                //查看这个目录名称上面是不是我们的这个单词，封装一个新的方法
                checkDelete(f,word);
            }else{
                //下面的这个实际上就是针对于我们的这个遍历的每一个元素
                // 再次调用这个方法去进行判断
                //这个其实就是一个不断的递归的过程
                scanDir(f,word);
            }
        }
    }
@SuppressWarnings({"all"})
    private static void checkDelete(File f,String word){
        if(!f.getName().contains(word)){
            //前面加上了！说明没有包含这个word我们直接返回即可
            return;
        }
        //打印日志：当前的这个遍历到的文件的具体的路径
        System.out.println("当前的这个文件是："+f.getAbsolutePath()+"请确认是否需要删除");
        Scanner scanner = new Scanner(System.in);
        String choice = scanner.next();
        //这个说明用户是yes的，即我们可以进行删除
        if(choice.equals("Y")||choice.equals("y")){
            f.delete();
            System.out.println("删除完毕");
        }
        //只要是用户输入的其他内容，我们就不会进行删除
        else{
            System.out.println("取消删除");
        }
    }
}
